/*
SRMM

Copyright 2000-2005 Miranda ICQ/IM project,
Copyright 2006-2009 Joe Kucera
all portions of this codebase are copyrighted to the people 
listed in contributors.txt.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#include "commonheaders.h"

int LoadSendRecvMessageModule(void);
int SplitmsgShutdown(void);

PLUGINLINK* pluginLink;
HINSTANCE g_hInst;

struct MM_INTERFACE mmi;
struct UTF8_INTERFACE utfi;

PLUGININFOEX pluginInfo = {
  sizeof(PLUGININFOEX),
  "Send/Receive Messaging Joe",
  PLUGIN_MAKE_VERSION(2, 5, 0, 1),
  "Send and receive instant messages using a split mode interface.",
  "Miranda IM Development Team",
  "jokusoftware@miranda-im.org",
  "(C) 2000-2009 Miranda IM Project",
  "http://www.miranda-im.org",
  UNICODE_AWARE,
  DEFMOD_SRMESSAGE,            // replace internal version (if any)
  {0x1C699E2F, 0xA55A, 0x41A7, { 0x98, 0x57, 0x09, 0x2C, 0x89, 0x4C, 0x67, 0x94 }} //{1C699E2F-A55A-41A7-9857-092C894C6794}
};

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
  g_hInst = hinstDLL;
  return TRUE;
}

__declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD mirandaVersion)
{
  if (mirandaVersion < PLUGIN_MAKE_VERSION(0, 7, 1, 0))
    return NULL;
  return &pluginInfo;
}

static const MUUID interfaces[] = {MIID_SRMM, MIID_LAST};
__declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
{
	return interfaces;
}

int __declspec(dllexport) Load(PLUGINLINK * link)
{
  pluginLink = link;
  mir_getMMI( &mmi );
	mir_getUTFI( &utfi );
  return LoadSendRecvMessageModule();
}

int __declspec(dllexport) Unload(void)
{
  return SplitmsgShutdown();
}
